#pragma once
#include "Global.h"
#include "structInit.h"
#include "GameInit.h"
#include "GameCore.h"
/*
	负责人: 张三
	功能: Battle: 战斗
		  开始一场战斗
			  计算勇士攻击力与怪物的防御力差值attack_gap_h2m：roleman.att-monster.def
			  判断差值是否大于零
			  是：
				得出战斗轮数round：怪物血量除以上述差值
				怪物的攻击力于勇士的防御差值attack_gap_m2h：monster.att-roleman.def
				经过战斗消灭怪物后主角的血量，默认主角先手，少受到一轮的伤害roleman.hp-(round-1)*attack_gap_m2h
				经过战斗后怪物的剩余血量：monster-round*attack_gap_h2m
				循环回合 直到一方噶掉
			  否：完全打不过的孩子 别打了
		  判断是否战胜怪物
		  是：更改相应属性，怪物从地图上消失
		  否：无事发生，如角色发生过移动 那把他移回来
	参数: *roleman
		  *monster
	返回值: int
*/
int Battle(ROLEMAN* roleman, MONSTER* monster);
/*
	功能:IsWin:根据玩家传入的在地图所在层数的对应位置，判断是否战胜了最后一层的最终BOSS
	参数:
		void
	返回值:
		true:表示获胜
		false:表示没有获胜

	判断条件：
		如果玩家在最后一层（例如 level == highlevel - 1），并且击败了最终 BOSS，则返回 true，表示玩家获胜。
		否则返回 false，表示玩家尚未获胜。

	BOSS 的标识：
		在地图数组 Gamemap 中，最终 BOSS 以及 困住E局的柱子 在地图中用特定的值来表示。
		当玩家移动到 BOSS 所在的位置时，触发战斗逻辑。如果玩家击败 BOSS，将柱子的位置的值设置为空地，延迟一会儿，触发游戏胜利界面。
	获胜条件：
		玩家必须在最后一层，并且 BOSS 已经被击败。

	1、判断是否在最后一层
		使用 level != highlevel - 1 判断玩家是否在最后一层。
		如果不在最后一层，直接返回 false，因为玩家尚未到达最终关卡。

	2. 检查 BOSS 是否被击败
		遍历最后一层的地图数组 Gamemap[level][i][j]，检查是否存在 柱子 的标识（例如 20）。
		如果找到 柱子 的标识，说明 BOSS 尚未被击败，返回 false。
		如果遍历完地图后没有找到 柱子 的标识，说明 BOSS 已经被击败，返回 true。

	3. BOSS 的击败逻辑
		当玩家移动到 BOSS 所在的位置时，触发战斗逻辑调用战斗函数Battle()。
		如果玩家击败 BOSS，将柱子的位置的值设置为空地，表示 BOSS 已被击败。
*/
int IsWin(int level);

/*
	计算损失
*/
void MonsterHarm(int harm[],ROLEMAN roleman);
